package practice.practice_3_9;

import java.util.*;
import java.util.function.Predicate;

/**
 * @AUTHOR LYF
 * @DATE 2022/3/9
 * @VERSION 1.0
 * @DESC
 * 前置条件:
 * 1.数组的熟悉掌握
 * 2.集合及API（List，Set，Map）的熟悉掌握
 * 3.工具类：Collections,Arrays的使用
 *
 *
 * 1.Stream流的基本概念
 * 对于集合和数组，方便进行统计，筛选，计数等操作
 *
 * 2.基本操作
 *
 *
 */
public class StreamDemo {
    public static void main(String[] args) {
        // 1.数组对象
        int []arr = {1,3,0,8,7};
        // 2.集合对象
        List<Integer> list = new ArrayList<>();
        Collections.addAll(list,1,3,0,8,7);      //Arrays.asList(arr); List<int[]>

        list.stream().forEach(u->{
            System.out.println(u);
        });

        Collections.reverse(list);
        list.stream().forEach(integer -> {
            System.out.println(integer);
        });


        //针对基本类型
       long count =  list.stream().filter(
                //Predicate.isEqual(2)
                integer -> {return integer>2;}
        ).count();

       List<Person> list1 = new ArrayList<>();

       list1.stream().filter(person -> {
           return person.age>3;
       }).count();


        System.out.println("count:"+count);

    }
}
